With the development of information technologies, cloud computation has been permeated in various aspects of computing fields. Due to demands of sharing data locally and off-peak running resources, there is a trend that different computing frameworks are uniformed onto a Platform as a Service (PaaS) platform.
Based on the solution of the prior art, a scheduler in the cloud system only describes generally the size of the resource amount, without describing computation capabilities and stabilities of different machines; moreover, a scheduler based on the prior art usually only supports one scheduling algorithm and performs resource allocation based on the scheduling algorithm. Mixing of different computation frameworks has the following requirements on the scheduler:
1) different machines have different computation capabilities and stabilities, such that it is required to classify computation efficiencies of different machine resources, e.g., exclusive disks and shared disks (or single disks), 10-gigabit network card and gigabit network card, etc.;
2) it is needed to formulate different scheduling algorithms for different jobs. For example, BestFit allocation algorithm is exploited for Message Passing Interface (MPI) jobs, while NextFit or WorstFit allocation algorithm is exploited for MR and most batch processing jobs.
3) It is needed to distinguish resource levels used by jobs with different delay sensitivities: for example, a high-priority MR (MapReduce) job needs to use a resource of a higher priority to prevent job instability due to too high running avoidance rate on a single chip machine.
However, the solution based on the prior art cannot satisfy the requirements above due to supporting a single scheduling algorithm and a machine resource description mode.